package com.zatech.cgnci.project.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 再保公司表
 * </p>
 *
 * @author Generator
 * @since 2024-12-17
 */
@Accessors(chain = true)
@TableName("cgnci_re_insurance_company")
@ApiModel(value = "CgnciReInsuranceCompanyDO对象", description = "再保公司表")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CgnciReInsuranceCompanyDO {

    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    @ApiModelProperty("流程编号(关联cgnci_approval_info.formNo)")
    private String formNo;

    @ApiModelProperty("公司类型(1-再保险公司, 2-再保经纪公司),码表值:companyType")
    private String companyType;

    @ApiModelProperty("公司属性(1-一般再保公司, 2-专业再保公司),码表值:companyProperty")
    private String companyProperty;

    @ApiModelProperty("公司代码")
    private String companyCode;

    @ApiModelProperty("公司中文名称")
    private String companyNameCn;

    @ApiModelProperty("公司英文名称")
    private String companyNameEn;

    @ApiModelProperty("所在地区分类(1-境内, 2-境外),码表值:domestic_andForeign")
    private String regionType;

    @ApiModelProperty("所属国家/地区,码表值:C00011")
    private String countryRegion;

    @ApiModelProperty("所在城市")
    private String city;

    @ApiModelProperty("是否关联方(1-是, 0-否),码表值:isYes")
    private String isAffiliated;

    @ApiModelProperty("联系地址-省")
    private String contactProvince;

    @ApiModelProperty("联系地址-省code")
    private String contactProvinceCode;

    @ApiModelProperty("联系地址-市")
    private String contactCity;

    @ApiModelProperty("联系地址-市code")
    private String contactCityCode;

    @ApiModelProperty("联系地址-区")
    private String contactDistrict;

    @ApiModelProperty("联系地址-区code")
    private String contactDistrictCode;

    @ApiModelProperty("联系地址-详细")
    private String contactAddress;

    @ApiModelProperty("评级Code")
    private String ratingCode;

    @ApiModelProperty("评级")
    private String rating;

    @ApiModelProperty("评级机构(1-AM BEST, 2-标普, 3-其他),码表值:ratingAgency")
    private String ratingAgency;

    @ApiModelProperty("其他评级机构")
    private String otherRatingAgency;

    @ApiModelProperty("评级日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT-8")
    private Date ratingDate;

    @ApiModelProperty("资本金币种")
    private String capitalCurrency;

    @ApiModelProperty("资本金金额")
    private BigDecimal capitalAmount;

    @ApiModelProperty("资本公积金币种")
    private String reserveCurrency;

    @ApiModelProperty("资本公积金金额")
    private BigDecimal reserveAmount;

    @ApiModelProperty("偿付能力")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal solvencyCapability;

    @ApiModelProperty("偿付能力更新日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT-8")
    private Date solvencyUpdateDate;

    @ApiModelProperty("是否境内独立法人(1-是, 0-否),码表值:isYes")
    private String isDomesticLegalEntity;

    @ApiModelProperty("偿还意愿(1-强, 2-中, 3-弱),码表值:repaymentWillingness")
    private String repaymentWillingness;

    @ApiModelProperty("再保险接受人风险偏好")
    private String riskPreference;

    @ApiModelProperty("保监会登记代码")
    private String circRegistrationCode;

    @ApiModelProperty("保监统信ID")
    private String circId;

    @ApiModelProperty("状态(0:录入中,1:审核中,2:退回录入中,3:已完成,4:已注销),码表值:businessStatus")
    private String status;

    @ApiModelProperty("是否生效(1-是, 0-否),码表值:isYes")
    private String isEffective;

    @ApiModelProperty("是否镜像数据(1-是, 0-否),码表值:isYes")
    private String isMirror;

    @ApiModelProperty("最终风险承担者名称")
    private String ultimateRiskBearerName;

    @ApiModelProperty("最终风险承担者所在国家或地区")
    private String ultimateRiskBearerCountryRegion;

    @ApiModelProperty("最终风险承担者所在市场(1-中国境内, 2-中国香港, 3-中国台湾, 4-中国澳门),码表值:ultimateRiskBearerMarket")
    private String ultimateRiskBearerMarket;

    @ApiModelProperty("开票类型(1-增值税普通发票, 2-增值税专用发票),码表值:invoiceType")
    private String invoiceType;

    @ApiModelProperty("纳税人类别(1-一般纳税人, 2-小规模纳税人, 3-非增值税纳税人),码表值:taxpayerType")
    private String taxpayerType;

    @ApiModelProperty("纳税人识别号")
    private String taxpayerId;

    @ApiModelProperty("税务注册地址")
    private String taxRegistrationAddress;

    @ApiModelProperty("税务联系电话")
    private String taxContactPhone;

    @ApiModelProperty("开户银行")
    private String taxBankName;

    @ApiModelProperty("银行账号")
    private String taxBankAccount;

    @ApiModelProperty("再保人所在地(1-境内, 2-境外),码表值:insuredLocation")
    private String insuredLocation;

    @ApiModelProperty("税率")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal taxRate;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("创建人")
    private String createUser;

    @ApiModelProperty("更新时间")
    @TableField(update = "now()")
    private Date updateTime;

    @ApiModelProperty("更新人")
    private String updateUser;


}
